import os from '@packages/lib-os';

import { wptBridgeJsCallNative } from './core';

export default {
    /**
     * app分享图片功能
     * @param imgUrl  图片链接
     * @param noShareArr  要过滤的分享方式
     * @param needCopyLink  需要复制的链接，不传代表不用复制链接功能
     * @param title  分享组件顶上的title
     * @param { imgUrl: '', noShareArr: [], needCopyLink: '', title: '', } path
     * @returns
     */
    wptImageShare: (path) => {
        if (!path) return;
        let params = {};
        if (typeof path === 'string') {
            params.imgUrl = path;
        } else if (typeof path === 'object' && path.imgUrl) {
            params = {
                ...path,
            };
        }
        if (os.wptAppVerison >= 369) {
            wptBridgeJsCallNative('wptImageShare', { ...params });
        } else {
            const { wptImageShare } = window;
            wptImageShare && wptImageShare(params.imgUrl, params.noShareArr);
        }
    },
    /**
     * app内右上角三个点分享
     *
     * @param {*} shareDetail
     */
    wptCheckShare: (shareDetail) => {
        const params = shareDetail || window.wxShare;
        if (os.wptAppVerison >= 370) {
            wptBridgeJsCallNative('wptCheckShare', { ...params });
        } else {
            window.checkShare && window.checkShare();
        }
    },

    /**
     * app分享图片功能
     * @param wxShare  分享信息 为window.wxShare
     * @param shopUri  直播店铺uri
     * @param imgConfigList  弹窗图片配置
     * @param { wxShare: {}, shopUri: '', imgConfigList: [] } path
     * @returns
     */
    wptLiveCardShare: (path) => {
        if (!path) return;
        let params = {};
        if (typeof path === 'object') {
            params = path;
        }
        if (typeof path === 'object' && path.wxShare) {
            params = {
                ...path,
            };
        }
        if (os.wptAppVerison >= 374) {
            wptBridgeJsCallNative('wptLiveCardShare', { ...params });
        } else {
            const { wptShare } = window;
            wptShare && wptShare(params.wxShare);
        }
    },

    /**
     * app分享图片功能，开新方法的原因是在window.wxShare新加qrcodeImgUrl
     * @param wxShare  分享信息 为window.wxShare
     * @param noShareArr {
     *  'qrcode' 二维码  themeCard 也是二维码
     *  'friends' 朋友圈
     *  'wechat' 微信
     *  'wxMin' 微信小程序
     *  'weibo' 微博
     *  'qq' qq
     *  'qzone' QQ空间
     *  'save' 保存
     *  'supershare' 一键分享
     *  'themeCard' 主题卡片
     *  'copyLink' 复制链接
     * }
     * @returns
     */
    wptShare: (path) => {
        if (!path) return;
        let params = {};
        if (typeof path === 'object') {
            params.wxShare = path;
        }
        if (typeof path === 'object' && path.wxShare) {
            params = {
                ...path,
            };
        }
        if (os.wptAppVerison >= 374) {
            wptBridgeJsCallNative('wptShare', { ...params });
        } else {
            const { wptShare } = window;
            wptShare && wptShare([]);
        }
    },

    /**
     * app多图二维码分享功能
     * @param wxShare 分享信息 为window.wxShare
     * @param imgConfigList 缩略图信息列表 缩略图信息列表中的每一项数据结构也需相同
     * @param noShareArr 要过滤的分享方式
     * @param needCopyLink 需要复制的链接，不传代表不用复制链接功能
     * @param onShareSuccessClose 分享成功后是否需要关闭分享窗口
     * @param defaultImgAPI 获取第一张默认图片的接口
     * @param othersImgAPI 获取其他图片的接口 此处因特殊需求分为两个接口 后续如可用一个接口 则两个接口参数传相同的即可
     * @param { wxShare: {}, imgConfigList: [], noShareArr: '', needCopyLink: '', onShareSuccessClose: '', defaultImgAPI: '', othersImgAPI: '' } params
     * @param closeCallback app中关闭分享窗口的回调函数
     * @returns
     */
    wptQrCodeShare: (params, closeCallback) => {
        if (os.wptAppVersion >= 379) {
            wptBridgeJsCallNative('wptQrCodeShare', { ...params }, closeCallback);
        }
    },

    /*
     * 新版本分享+
     * @param {{ share: {}, saleUri: string }}
     */
    wptShareOff: ({ wxShare = window.wxShare, saleUri = '', noShareArr = [], ...other } = {}) => {
        if (!saleUri) return;
        // ios 使用的 wxShare.noShareArr
        wxShare.noShareArr = noShareArr;
        if (os.wptAppVerison >= 384) {
            wptBridgeJsCallNative('wptShareOff', { wxShare, saleUri, noShareArr, ...other });
        } else {
            WPT.Model.share(wxShare, noShareArr);
        }
    },

    /*
     * 直接唤起微博分享
     * @param {{ wbDesc: string, weiboLink: string, wbImgUrl: string }}
     */
    wptWeiboShare: (obj = {}) => {
        if (os.wptAppVerison >= 388) {
            wptBridgeJsCallNative('wptWeiboShare', {
                wbDesc: obj.wbDesc,
                weiboLink: obj.weiboLink,
                wbImgUrl: obj.wbImgUrl,
            });
        }
    },

    /**
     * 海报分享
     * @param {imgUrl = '', wbDesc = '', title = '', noShareArr = []}
     */
    wptPosterShare: (params) => {
        if (os.wptAppVerison >= 389) {
            wptBridgeJsCallNative('wptPosterShare', { ...params });
        } else {
            window.wptQRShare &&
                window.wptQRShare({ imgUrl: params.imgUrl, tips: params.title || '', forbid: params.noShareArr || [] });
        }
    },

    /**
     * 大宅云仓分享立减
     * @param {wxShare = {}, noShareArr = []}
     */
    cloudWarehouseShareOff: (params) => {
        if (os.wptAppVerison >= 395 || os.wjbVersion >= '1.3.5') {
            wptBridgeJsCallNative('cloudWarehouseShareOff', { ...params });
        }
    },
};
